package com.thinkTank.oa.service;

import java.util.List;
import java.util.Map;
import java.util.function.Consumer;

import org.springframework.web.multipart.MultipartFile;

import com.thinkTank.oa.base.BaseService;
import com.thinkTank.oa.entity.Customer;
import com.thinkTank.oa.entity.Demand;
import com.thinkTank.oa.entity.Project;
import com.thinkTank.oa.entity.ProjectAttr;

public interface ProjectService extends BaseService<Project> {

    Project findByProjectNumber(int projectNumber);

    void save(Project project, ProjectAttr projectAttr, MultipartFile file);

    void update(Project project, ProjectAttr projectAttr, MultipartFile file);
    
    /**
     * 修改持有人
     * @author pdz
     * @date 2018年8月15日
     * @param project 里面要有pid和持有人
     */
    void updateProjectHolder(Project project);

    /**
     * 导入项目
     * @author pdz
     * @date 2018年9月5日
     * @param action 操作项目
     */
    void importData(Project project, Consumer<Project> action);
    
    public List<Map<Object,Object>> findProjectByIndex(Integer start);
    
    void updateProjectContact(Project project);

	List<Demand> queryButtedDemand(String projectId);
	
	/**
	 * 通过项目联系人查询项目
	 * @author dongli
	 * @date 2018年11月5日
	 * @param project
	 * @return
	 */
	public List<Project> findProjectByProjectContactId(Project project);

	/**
	 * 根据projectId查询关联的客户
	 * @author pdz
	 * @date 2018年11月7日
	 * @param projectId
	 * @return
	 */
	List<Customer> queryCustomer(String projectId);
    
}
